<?php

class Arquivo extends ADM_Controller {

    //put your code here

    public function __construct() {
        parent::__construct();
        ////load_module($_module, $langfile, $lang = '')
        //$this->load->language('pessoa/pessoa_cadastro');
        $this->checar_metodo(uri_string());
        $this->load->helper(array('file', 'encode'));

        $this->load->language('arquivo/menu_arquivo');
        $this->load->model('arquivo/arquivo_model');

        /// Inicio extender modulo
        $this->load->add_module('settings');
        $this->load->config('settings/parametros');
        $this->load->model('settings/settings_model');
        /// Fim extender modulo
    }

    function index() {
        /// LISTAGEM DE ARQUIVOS
    }

    function abrir($_id) {
        $arquivo_info = $this->arquivo_model->consultar($_id);
        //pre($arquivo_info[0]->arquivo);
        //echo gzuncompress(base64_decode($arquivo_info[0]->arquivo));
        //echo file_get_contents('compress.zlib://data:who/cares;base64,'. base64_encode($arquivo_info[0]->arquivo));
        //$data = read_file($arquivo_info[0]->arquivo);
        //$f = tempnam('/tmp', 'gz_fix');
        //file_put_contents($f, "\x1f\x8b\x08\x00\x00\x00\x00\x00" . $data);
        //echo file_get_contents('compress.zlib://' . $f);
        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Cache-Control: private", false); // required for certain browsers 
        //header("Content-Type: application/force-download"); 
        header('Content-disposition: attachment; filename=' . $arquivo_info[0]->nome);
        header("Content-type: " . $arquivo_info[0]->extensao);
        //header('Content-Transfer-Encoding: binary');
        //header('Content-Disposition: attachment; filename="downloaded.doc"');
        //echo $arquivo_info[0]->id;//
        echo url_base64_decode($arquivo_info[0]->arquivo);
    }

    public function gravar($_restrito = NULL) {
        $config = array();
        $v_dados = array();
        $erro = false;

        $config['allowed_types'] = '*';
        $config['max_size'] = $this->settings_model->get_valor("tamanho_maximo_arquivo");
        $config['remove_spaces'] = true;
        $config['upload_path'] = $this->config->item('path_temp');
        $this->load->library('upload', $config);



        if ($this->settings_model->get_valor("sobreescrever") == "false") {
            //$this->settings_model->get_valor("sobreescrever");
            if (!$this->arquivo_model->consultarNome($_FILES['imagens']['name'][0]) == NULL) {
                // $v_dados['erro'] = $this->lang->line('lang_erro_config_sobreescrever');
                $erro = true;
                $v_dados['cod'] = 111;
                $v_dados['header'] = $this->lang->line('lang_erro_title');
                $v_dados['msg'] = $this->lang->line('lang_erro_config_sobreescrever');
            }
        }
        if ($erro == false) {
            if ($this->upload->do_upload('imagens')) {
                $upload_log = $this->upload->data();
                $v_dados = array();
                $v_dados['nome'] = $upload_log['orig_name']; //// NOME DO ARQUIVO
                $v_dados['arquivo'] = url_base64_encode(read_file($this->config->item('path_temp') . $upload_log['orig_name']));
                $v_dados['extensao'] = get_mime_by_extension($upload_log['orig_name']);
                $v_dados['tipo'] = $upload_log['file_ext'];
                $v_dados['restrito'] = $_restrito;
                $v_dados['id'] = $this->arquivo_model->cadastrar($v_dados);
                unlink($this->config->item('path_temp') . "" . $upload_log['orig_name']);
                //echo "ID ARQUIVO:". $id;
                $v_dados['cod'] = 999;
                $v_dados['header'] = $this->lang->line('lang_sucesso_title');
                $v_dados['msg'] = $this->lang->line('lang_sucesso_msg');
            } else {
                //$v_dados = $this->upload->display_errors();
                $v_dados['cod'] = 111;
                $v_dados['msg'] = $this->upload->display_errors(); //$this->lang->line('lang_msg_submit_warning');
                $v_dados['header'] = $this->lang->line('lang_erro_title');
                ; //$this->lang->line('lang_header_submit_warning');
                //$v_dados['campos'] = "PERMISSAO ARQUIVO"; //$this->form_validation->erros_campos_json();
            }
        } else {
            $v_dados['cod'] = 111;
            $v_dados['header'] = $this->lang->line('lang_erro_title');
            $v_dados['msg'] = $this->lang->line('lang_erro_existente_bancodedados');
        }
        echo json_encode($v_dados);
    }

}